﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

//1.栈区的内存自动申请，自动释放，不需要程序员手动管理；
int* myFunc()
{
	int a = 10;//栈区内存
	//4.不要返回局部变量a的地址，没有意义；
	return &a;
}
char* getString()
{
	char str[] = "hello world!";
	//7.str指向的值已经被释放，返回没有意义；
	return str;
}
void testStack()
{
	//3.*p的值是多少，其实并不能确定，因为局部变量a的内存已经被回收释放；
	int* p = myFunc();
	printf("2.int类型指针p指向局部变量a的地址，此时*p该地址指向的值为：%d\n", *p);//10

	//6.char*类型指针变量s，该地址指向的值为，乱码；就是因为局部变量str已经被回收释放；
	char* s = NULL;
	s = getString();
	printf("5.char类型指针s指向局部变量str字符串的地址，则s该地址指向字符串的值为：%s\n", s);//烫烫烫烫烫烫烫烫袋?
}

//main181：栈区内存管理
int main181()
{
	testStack();

	system("pause");
	return EXIT_SUCCESS;
}